var eventproxy=require('eventproxy');
var ep=new eventproxy();

function mockGet(cb){
    setTimeout(function () {
        console.log('网络请求...');
        if(Math.random()<0.3){
            cb(null,'网络请求');
        }else{
            cb({msg:'网络请求错误'});
        }
    },Math.random()*1000|0);
}

function mockRead(cb){
    setTimeout(function () {
        console.log('读取文件...');
        if(Math.random()<0.3){
            cb(null,'读取文件');
        }else{
            cb({msg:'读取文件错误'});
        }
    },Math.random()*1000|0);
}

function mockQuery(cb){
    setTimeout(function () {
        console.log('查询数据库...');
        if(Math.random()<0.5){
            cb(null,'查询数据库');
        }else{
            cb({msg:'查询数据库错误'});
        }
    },Math.random()*1000|0);
}

//--------------------------------
(function (cb) {
    ep.all('read','get', function (tpl, data) {
        cb(null,{
            tpl:tpl,
            data:data
        });
    });

    ep.fail(cb);

    mockRead(ep.done('read'));

    mockGet(ep.done('get'));

})(function (err, data) {
    if(err)return console.error('error:',err);
    console.info('data:',data);
});